This invention relates to encoding and decoding of signals, such as image-representative signals or audio signals, and, more particularly, to a method and apparatus for encoding and decoding such signals to achieve bandwidth compression for efficient storage and/or transmission.
Image-representative signals (e.g. video signals) can be digitized, encoded, and subsequently decoded in a manner which substantially reduces the number of encoded bits necessary to obtain a decoded reconstructed image without undue or noticeable degradation in the reconstructed image. Other types of signals, for example audio signals, can also be encoded and decoded to achieve bandwidth compression without undue degradation of the reconstructed signal. Coding methods that use transforms, for example a discrete cosine transform (xe2x80x9cDCTxe2x80x9d) or a wavelet transform, are well known for this purpose and are in widespread use.
In a typical type of DCT coding, an image is divided into blocks, for example blocks of 8xc3x978 pixels. A DCT transform is applied to each block to obtain respective 8xc3x978 DCT coefficients. That is, 64 pixel values are transformed into 64 DCT coefficient values. Because of the nature of typical images, certain efficiencies can be achieved using the DCT coefficients, a substantial number of which may be quantized to zero. After so-called zig-zag ordering, which arranges the DCT coefficients in a sequence that tends to group the smaller or zero valued coefficients together, a type of coding called (run, level, end) coding is utilized. After the (run, level, end) coding, entropy coding is generally applied.
In a typical type of wavelet transform coding, a wavelet transform is applied to achieve wavelet decomposition of an image, and a wavelet xe2x80x9ctreexe2x80x9d is formed. Then, a type of coding called xe2x80x9czero-treexe2x80x9d coding is employed, wherein, at each node of the tree, the value at the node is encoded, together with an indication of whether the children, grandchildren etc. nodes (collectively, the xe2x80x9cprogenyxe2x80x9d nodes) of the node being coded are all zero. If so, it will not be necessary to code any of the progeny, and this can lead to certain coding efficiencies. The coded zero-tree information can then be entropy coded.
In the above described types of coding, as in other similar coding, the xe2x80x9clevelxe2x80x9d or xe2x80x9cvaluexe2x80x9d part of the code can tend to require a relatively large number of different codes for its representation, and this can tend to reduce the advantages of the coding and/or the advantages of the subsequent entropy coding.
It is among the objects of the present invention to provide improvements in encoding and decoding techniques and apparatus of the general type described, and to be responsive to the limitations of such techniques and apparatus in the prior art.
In accordance with a feature of the present invention, a bit plane approach is used in representing coded levels or values. Although, this approach will require more codes to be generated (since each bit plane is separately encoded), the codes themselves, and/or the entropy codes therefor, will require less bits for their representation, and in many cases the net result will be a substantial reduction in the bits necessary to encode the original signal.
In accordance with an embodiment of the invention, there is disclosed a method for encoding and decoding an input signal, comprising the following steps: applying a transform to said signal to obtain a transformed signal; quantizing the transformed signal to obtain a sequence of quantized values, the quantized values being representable in the form of ordered digital bits; for each order of said digital bits, encoding a bit plane of the sequence to obtain encoded values; and decoding the encoded values to recover said input signal.
In a preferred embodiment of the invention, the ordered digital bits are binary bits, and there are several orders of said bits. In this embodiment, the step of quantizing the transformed signal to obtain a sequence of quantized values includes: determining the largest of the quantized values; and determining the number of orders, N, of said binary bits as the number of binary bits necessary to represent said largest value.
In accordance with another embodiment of the invention, there is disclosed a method for encoding and decoding an input signal, comprising the following steps: applying a wavelet transform to the signal to obtain a transformed signal; forming a wavelet tree from the transformed signal, elements of the tree having values that depend on coefficients of the transformed signal; quantizing the wavelet tree element values, the quantized element values being representable in the form of ordered digital bits; for each order of said digital bits, encoding a bit plane of said wavelet tree element values to obtain encoded values; and decoding the encoded values to recover the input signal.
Further features and advantages of the invention will become more readily apparent from the following detailed description when taken in conjunction with the accompanying drawings.